import time

# 事件处理函数
def handle_click():
    print("按钮被点击了！")

def handle_keypress():
    print(f"键盘键 'key' 被按下了！")

def handle_exit():
    print("退出程序。")
    global running
    running = False  # 退出事件循环

# 事件循环
def event_loop():
    while running:
        if events:
            event = events.pop(0)  # 从事件队列中取出一个事件
            print(f"处理事件: {event}")
            event_handlers[event]()  # 调用事件的回调函数
        else:
            time.sleep(1)  # 如果没有事件，等待一会儿

# 事件队列
events = []

# 事件与回调函数的映射
event_handlers = {
    "click": handle_click,
    "keypress": handle_keypress,
    "exit": handle_exit
}

# 程序运行标志
running = True

# 启动事件循环
import threading

def input_thread():
    while running:
        user_input = input("请输入事件（click、keypress、exit）：")
        if user_input in event_handlers:
            events.append(user_input)  # 将用户输入的事件加入队列

# 启动输入线程
thread = threading.Thread(target=input_thread)
thread.start()

# 启动事件循环
event_loop()

# 等待输入线程结束
thread.join()
